﻿using System.Xml.Serialization;

namespace sql_data_generator.FieldOptions
{
    [XmlInclude(typeof(FieldOptionsCity))]
    [XmlInclude(typeof(FieldOptionsCountry))]
    [XmlInclude(typeof(FieldOptionsDateTime))]
    [XmlInclude(typeof(FieldOptionsEmailAddress))]
    [XmlInclude(typeof(FieldOptionsFirstName))]
    [XmlInclude(typeof(FieldOptionsFixedInteger))]
    [XmlInclude(typeof(FieldOptionsFullName))]
    [XmlInclude(typeof(FieldOptionsGUID))]
    [XmlInclude(typeof(FieldOptionsInteger))]
    [XmlInclude(typeof(FieldOptionsIPv4Address))]
    [XmlInclude(typeof(FieldOptionsIPv6Address))]
    [XmlInclude(typeof(FieldOptionsLastName))]
    [XmlInclude(typeof(FieldOptionsMACAddress))]
    [XmlInclude(typeof(FieldOptionsTextPattern))]
    [XmlInclude(typeof(FieldOptionsTextRandomLength))]
    [XmlInclude(typeof(FieldOptionsTextWords))]
    [XmlInclude(typeof(FieldOptionsFixedSet))]
    public class BaseFieldOptions
    {
        public BaseFieldOptions()
        {
            ValueAsString = true;
            UseNullValues = false;
        }

        public bool ValueAsString { get; set; }

        public bool UseNullValues { get; set; }

        public BaseFieldOptions Clone()
        {
            return (BaseFieldOptions)MemberwiseClone();
        }
    }
}